home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
lang_c
/
cppmatrx
/
matrix.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-02-02
|
2KB
|
43 lines
typedef double matrix_t;
class matrix {
matrix_t *matrix_data;
size_t matrix_size;
public:
matrix (size_t matrix_length, ...);
matrix (char *dummy, size_t matrix_length,matrix_t fill_value=0.0);
matrix (matrix &m);
~matrix (void) { delete matrix_data; }
matrix_t get_elem (size_t row, size_t column) { return *(matrix_data + (row-1)*matrix_size + (column-1)); }
matrix_t put_elem (size_t row, size_t column, matrix_t elem) { return (*(matrix_data + (row-1)*matrix_size + (column-1)) = elem); }
matrix_t* operator[] (size_t row) { return matrix_data + row*matrix_size; }
matrix_t& operator() (size_t row, size_t column) { return *(matrix_data + (row-1)*matrix_size + (column-1)); }
matrix operator= (matrix &m);
size_t get_matrix_size (void) { return matrix_size; }
int operator== (matrix m);
int operator!= (matrix m);
matrix operator+ (matrix m);
matrix operator- (matrix m);
matrix operator- (void);
friend matrix_t det (matrix m);
friend matrix_t cofactor (matrix m, size_t m_row, size_t m_column);
friend matrix minor (matrix m, size_t m_row, size_t m_column);
friend void transpose (matrix &m);
friend matrix operator* (matrix m, double r);
friend matrix operator* (double r, matrix m);
friend matrix operator* (matrix m, int r);
friend matrix operator* (int r, matrix m);
friend ostream& operator<< (ostream &s, matrix m);
friend istream& operator>> (istream &s, matrix &m);
matrix operator* (matrix m);
void print_matrix (void);
};
void matrix_error (char *message);